package com.yourenbang.transaction.api.model.dto.pay;

import com.yourenbang.lingyun.constants.enums.PlatNoEnums;
import com.yourenbang.lingyun.constants.enums.pay.PayFromEnum;
import com.yourenbang.lingyun.constants.enums.pay.PayTypeEnum;
import com.yourenbang.lingyun.core.base.validator.EnumValue;
import com.yourenbang.lingyun.core.util.json.ToJSON;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;

@Data
public class WithDrawDTO implements Serializable, ToJSON {

    /**
     * 提现金额
     *
     */
    @Pattern(regexp = "^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$", message = "请输入合法金额")
    private String amt;

    /**
     * 提现用户ID
     */
    @NotBlank(message = "用户id不可空")
    private String userBaseId;

    /**
     * 提现渠道
     *
     * WECHAT 微信支付
     * ALIPAY 支付宝
     * LINGHUISUAN 灵会算
     *
     * @see PayTypeEnum
     */
    @EnumValue(enumClass= PayTypeEnum.class, message = "提现支付类型未通过校验")
    private String withdrawPayType;

    /**
     * 提现类型
     *
     * @see PayFromEnum
     */
    @EnumValue(enumClass= PayFromEnum.class, message = "提现类型未通过校验")
    private String withdrawType;

    /**
     * 第三方账户（卡号、支付宝账号）
     */
    @NotBlank(message = "第三方账户不可空")
    private String thirdAccount;

    /**
     * 系统编码 21 银小云
     * @see PlatNoEnums
     */
    @EnumValue(enumClass=PlatNoEnums.class, message = "系统类型未通过校验")
    private Short platNo;

}
